---
title: "Nutzungsstatistiken 2020"
# author: "Jan Taubitz"
# contact: "jan.taubitz@charite.de"
output:
flexdashboard::flex_dashboard:
orientation: rows
vertical_layout: fill
source_code: embed
# self_contained: false
# https://stackoverflow.com/questions/54643852/how-to-reduce-the-size-of-flexdashboards
editor_options:
chunk_output_type: console
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE,
message = FALSE,
warning = FALSE,
options(scipen = 999))
library(flexdashboard)
library(readxl)
library(tidyverse)
library(lubridate)
library(gt)
library(janitor)
library(scales)
#library(DT)
library(plotly)
library(gameofthrones)
library(RColorBrewer)
# Ressources:
# https://towardsdatascience.com/building-an-hr-dashboard-in-r-using-flexdashboard-76d14ed3f32
# https://rmarkdown.rstudio.com/flexdashboard/using.html
# Icons:
# https://fontawesome.com/
pal <- got(20, option = "Jon_Snow", direction = 1)
#library(stringr)
pal <- str_sub(pal, end=-3)
# Alternative Farbpaletten
#pal <- brewer.pal(n = 9, name = "RdYlGn")
#pal <- got(9, option = "Tyrell", direction = -1)
```
Dash {data-icon="fa-globe"}
=====================================
Row {data-height=300}
-----------------------------------------------------------------------
###
```{r}
articles <- "+16 %"
valueBox(articles,
caption = "Suchen in Primo (im Vergleich zum Vorjahr 2019)",
icon = "fa-search-plus",
color = pal[17],
href = "#primo")
```
###
```{r}
articles <- "+31 %"
valueBox(articles,
caption = "Downloads aus E-Books von Springer (im Vergleich zum Vorjahr 2019)",
icon = "fa-book",
color = pal[20],
href = "#e-books")
```
###
```{r}
spam <- "-48 %"
valueBox(spam,
caption = "Ausleihen von Büchern (im Vergleich zum Vorjahr 2019)",
icon = "fa-book",
color = pal[12],
href="#ausleihen")
```
```{r eval=FALSE}
###
#Die Zahl bezieht sich auf die prozentuale Veränderung zum Vorjahr 2019.
```
Row {data-height=300}
-----------------------------------------------------------------------
###
```{r}
comments <- "+28 %"
valueBox(comments,
caption = "Besuche der Website (im Vergleich zum Vorjahr 2020)",
icon = "fa-user-check",
color = pal[19],
href = "#website")
```
###
```{r}
articles <- "+24 %"
valueBox(articles,
caption = "Downloads aus E-Journals von Springer (im Vergleich zum Vorjahr 2019)",
icon = "fa-file",
color = pal[18],
href = "#journals")
```
###
```{r}
spam <- "-59 %"
valueBox(spam,
caption = "Personenzähler CVK (im Vergleich zum Vorjahr 2019)",
icon = "fa-users",
color = pal[12],
href="#personenzähler")
```
Row {data-height=300}
-----------------------------------------------------------------------
###
```{r}
articles <- "+9 %"
valueBox(articles,
caption = "Downloads aus E-Journals von LWW (im Vergleich zum Vorjahr 2019)",
icon = "fa-file",
color = pal[15],
href = "#journals")
```
###
```{r}
```
###
```{r}
```
Primo {data-orientation=columns}
=====================================
Column {data-width=400, data-height=400}
-----------------------------------------------------------------------
### Primo A
```{r}
Primo_Stat_Auswertungen <-
read_excel(
"T:/Statistik/ALMA_ART/Primo_Stat_Auswertungen.xlsx",
sheet = "R_1",
col_types = c("date",
"text", "numeric")
)
```
```{r}
Primo <- Primo_Stat_Auswertungen %>%
mutate(Year = year(Date)) %>%
group_by(Year, Action) %>%
summarise(Value = sum(Value))
```
```{r}
Primo_3 <- Primo %>%
summarise(Search_Total = sum(Value)) %>%
mutate(Percent_Change = (Search_Total / (lag(Search_Total)) - 1))
```
```{r}
pal <- got(2, option = "Jon_Snow", direction = 1)
p1 <- ggplot(Primo, aes(x = Year, y = Value)) +
geom_col(aes(fill = Action), position = "dodge") +
theme_classic() +
labs(
title = "Primo: Anzahl Suchen von 2018 bis 2020",
subtitle = "",
fill = "Suchen",
y = "",
x = ""
) +
scale_fill_manual(values = pal) +
theme(legend.position = "bottom")
ggplotly(p1) %>%
layout(legend = list(orientation = "h", y = -0.1))
#+
# facet_wrap(~Date)
```
```{r eval=FALSE}
#Column {data-width=200, data-height=200}
#-----------------------------------------------------------------------
### Primo B
Primo_2 <- Primo %>%
spread(key = Year, value = Value) %>%
adorn_totals("row")
gt(Primo_3) %>%
tab_header(title = md("Suchen in Primo"))
```
Website {data-orientation=columns}
=====================================
Column
-----------------------------------------------------------------------
### Chart A
```{r}
Website_Besuche <- read_excel(
"T:/Statistik/ALMA_ART/Website.xlsx",
sheet = "Besuche",
col_types = c("numeric",
"text", "numeric")
)
```
```{r}
Website_Besuche_2 <- Website_Besuche %>%
group_by(Action) %>%
# filter(Action == "Besuche") %>%
mutate(Percent_Change = (Value / (lag(Value)) - 1))
```
```{r}
pal <- got(2, option = "Jon_Snow", direction = 1)
p1 <- ggplot(Website_Besuche, aes(x = Date, y = Value)) +
geom_col(aes(fill = Action), position = "dodge") +
theme_classic() +
scale_fill_manual(values = pal) +
labs(title = "Website: Besuche und Seitenansichten 2018 bis 2020",
fill = "",
y = "",
x = "")
ggplotly(p1)
```
### Chart B
```{r}
Website_OS <- read_excel(
"T:/Statistik/ALMA_ART/Website.xlsx",
sheet = "Desktop",
col_types = c("text", "text", "numeric")
)
```
```{r}
pal <- got(3, option = "Jon_Snow", direction = -1)
p1 <- Website_OS %>%
filter(date == "2020") %>%
plot_ly(marker = list(colors = pal)) %>%
add_pie(labels = Website_OS$action,
values = Website_OS$value,
hole = 0.6) %>%
layout(title = "Website: Verwendung Betriebssysteme 2020")
p1
```
Column
-----------------------------------------------------------------------
### Chart C
```{r}
Website_Users <- read_excel(
"T:/Statistik/ALMA_ART/Website.xlsx",
sheet = "Users",
col_types = c("date", "numeric", "numeric")
)
pal <- got(3, option = "Jon_Snow", direction = 1)
```
```{r}
Website_Users_2 <- Website_Users %>%
mutate(month = as.factor(month(date, label = T, abb = T))) %>%
mutate(year = as.factor(year(date)))
p2 <-
ggplot(Website_Users_2, aes(x = month, y = visits, color = year)) +
geom_point(size = 2) +
geom_line(aes(x = month, y = visits, group = year), size = 1) +
theme(axis.text.x = element_text(angle = 90)) +
# scale_x_datetime(date_labels = "%b %Y", date_breaks = "2 month")+
theme_classic() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_color_manual(values = pal) +
labs(
title = "Website: Besuche 2018 bis 2020",
y = "Besuche",
x = "",
color = ""
)
ggplotly(p2)
```
### Chart D
```{r}
Website_Users_2 <- Website_Users %>%
mutate(month = as.factor(month(date, label = T, abb = T))) %>%
mutate(year = as.factor(year(date)))
#%>%
# filter(date >= "2019-01-01")
p1 <-
ggplot(Website_Users_2, aes(x = month, y = unique_users, color = year)) +
geom_point(size = 2) +
geom_line(aes(x = month, y = unique_users, group = year), size = 1) +
theme(axis.text.x = element_text(angle = 90)) +
# scale_x_datetime(date_labels = "%b %Y", date_breaks = "2 month")+
theme_classic() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_color_manual(values = pal) +
labs(
title = "Website: Unique Users 2018 bis 2020",
y = "Unique Users",
x = "",
color = ""
)
ggplotly(p1)
```
E-Books {data-orientation=columns}
=====================================
Column {data-width=400, data-height=400}
-----------------------------------------------------------------------
### Chart A
```{r}
Springer_2019_20 <- read.csv("T:/Statistik/ALMA_ART/Rohdaten_Springer/Springer_counter5_tr_b1_2019-01-2020-12.csv", header = T, skip = 13, sep = ",")
```
```{r}
# http://www.bib-bvb.de/documents/11183/10148261/COUNTER-5_Zusammenstellung_KER_2020-01.pdf/bfaa960a-30ed-4429-9a99-1328a0598c44
# https://stackoverflow.com/questions/13575180/how-to-change-language-settings-in-r
#Sys.setenv(LANG = "en")
# https://stackoverflow.com/questions/39340185/how-to-set-the-default-language-of-date-in-r
#Sys.setlocale("LC_TIME", "German")
```
```{r}
Springer <- Springer_2019_20 %>%
group_by(Metric_Type) %>%
summarise_at(vars(Jan.2019:Dec.2020), sum) %>%
filter(Metric_Type == "Unique_Title_Requests") %>%
select(-1) %>%
gather() %>%
mutate(date = my(key)) %>%
mutate(month = as.factor(month(date, label = T, abb = T))) %>%
mutate(year = as.factor(year(date)))
```
```{r}
pal <- got(2, option = "Jon_Snow", direction = 1)
p1 <-
ggplot(Springer, aes(x = month, y = value, color = year)) +
geom_point(size = 2) +
geom_line(aes(x = month, y = value, group = year), size = 1) +
theme(axis.text.x = element_text(angle = 90)) +
# scale_x_datetime(date_labels = "%b %Y", date_breaks = "2 month")+
theme_classic() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_color_manual(values = pal) +
ylim(0, NA) +
labs(
title = "Springer E-Books Unique Title Requests 2019 und 2020 (TR_B1)",
y = "Unique Title Requests",
x = "",
color = ""
)
ggplotly(p1)
```
```{r eval=FALSE}
Springer %>%
group_by(year) %>%
summarise(value = sum(value)) %>%
mutate(percent_change = (value / (lag(value)) - 1))
```
Journals
=====================================
Row
-----------------------------------------------------------------------
### Chart A
```{r}
Springer_2019_20 <- read.csv("T:/Statistik/ALMA_ART/Rohdaten_Springer/Springer_counter5_tr_j1_2019-01-2020-12.csv", header = T, skip = 13, sep = ",")
```
```{r}
LWW_2019_20 <- read.csv("T:/Statistik/ALMA_ART/Rohdaten_Journals/LWW/LWW_2019_2020_TR_J1.csv", header = T, skip = 13, sep = ",")
```
```{r}
# http://www.bib-bvb.de/documents/11183/10148261/COUNTER-5_Zusammenstellung_KER_2020-01.pdf/bfaa960a-30ed-4429-9a99-1328a0598c44
# https://stackoverflow.com/questions/13575180/how-to-change-language-settings-in-r
#Sys.setenv(LANG = "en")
# https://stackoverflow.com/questions/39340185/how-to-set-the-default-language-of-date-in-r
#Sys.setlocale("LC_TIME", "German")
```
```{r}
Springer <- Springer_2019_20 %>%
group_by(Metric_Type) %>%
summarise_at(vars(Jan.2019:Dec.2020), sum) %>%
filter(Metric_Type == "Unique_Item_Requests") %>%
select(-1) %>%
gather() %>%
mutate(Publisher = "Springer") %>%
mutate(date = my(key)) %>%
mutate(month = as.factor(month(date, label = T, abb = T))) %>%
mutate(year = as.factor(year(date)))
```
```{r}
LWW <- LWW_2019_20 %>%
group_by(Publisher, Metric_Type) %>%
summarise_at(vars(Jan.2019:Dec.2020), sum) %>%
filter(Metric_Type == "Unique_Item_Requests") %>%
filter(Publisher == "Lippincott Williams & Wilkins (LWW)") %>%
ungroup() %>%
select(-1, -2) %>%
gather() %>%
mutate(Publisher = "LWW") %>%
mutate(date = my(key)) %>%
mutate(month = as.factor(month(date, label = T, abb = T))) %>%
mutate(year = as.factor(year(date)))
```
```{r}
pal <- got(2, option = "Jon_Snow", direction = 1)
p1 <-
ggplot(Springer, aes(x = month, y = value, color = year)) +
geom_point(size = 2) +
geom_line(aes(x = month, y = value, group = year), size = 1) +
theme(axis.text.x = element_text(angle = 90)) +
# scale_x_datetime(date_labels = "%b %Y", date_breaks = "2 month")+
theme_classic() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_color_manual(values = pal) +
ylim(0, NA) +
labs(
title = "Springer Journals Unique Item Requests 2019 und 2020 (TR_J1)",
y = "Unique Item Requests",
x = "",
color = ""
)
ggplotly(p1)
```
### Chart B
```{r}
pal <- got(2, option = "Jon_Snow", direction = 1)
p1 <-
ggplot(LWW, aes(x = month, y = value, color = year)) +
geom_point(size = 2) +
geom_line(aes(x = month, y = value, group = year), size = 1) +
theme(axis.text.x = element_text(angle = 90)) +
# scale_x_datetime(date_labels = "%b %Y", date_breaks = "2 month")+
theme_classic() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_color_manual(values = pal) +
ylim(0, NA) +
labs(
title = "LWW Journals Unique Item Requests 2019 und 2020 (TR_J1)",
y = "Unique Item Requests",
x = "",
color = ""
)
ggplotly(p1)
```
Row
-----------------------------------------------------------------------
### Chart C
```{r}
Journals <- bind_rows(Springer, LWW)
```
```{r}
pal <- got(2, option = "Jon_Snow", direction = 1)
p1 <-
ggplot(Journals, aes(x = month, y = value, color = Publisher)) +
geom_point(size = 2) +
geom_line(aes(x = month, y = value, group = Publisher), size = 1) +
theme(axis.text.x = element_text(angle = 90)) +
# scale_x_datetime(date_labels = "%b %Y", date_breaks = "2 month")+
theme_classic() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_color_manual(values = pal) +
ylim(0, NA) +
labs(
title = "Journals Unique Item Requests 2019 und 2020 (TR_J1)",
y = "Unique Item Requests",
x = "",
color = ""
) +
facet_wrap(~year)
ggplotly(p1)
```
```{r eval=FALSE}
Springer %>%
group_by(year) %>%
summarise(value = sum(value)) %>%
mutate(percent_change = (value / (lag(value)) - 1))
```
```{r eval=FALSE}
LWW %>%
group_by(year) %>%
summarise(value = sum(value)) %>%
mutate(percent_change = (value / (lag(value)) - 1))
```
Ausleihen {data-orientation=columns}
=====================================
Column {data-width=400, data-height=400}
-----------------------------------------------------------------------
### Ausleihen
```{r eval=FALSE}
Ausleihen <- read_excel(
"T:/Statistik/ALMA_ART/Ausleihen.xlsx",
sheet = "Ausleihen_R",
col_types = c("text",
"numeric", "numeric", "numeric",
"numeric"),
na = "NA"
)
```
```{r eval=FALSE}
pal <- got(12, option = "Jon_Snow", direction = -1)
p1 <-
ggplot(Ausleihen, aes(x = Jahr, y = Ausleihen_u_Verl)) +
geom_col(fill = pal[1]) +
theme(axis.text.x = element_text(angle = 90)) +
# scale_x_datetime(date_labels = "%b %Y", date_breaks = "2 month")+
theme_classic() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(
title = "Ausleihen (inkl. Verl.) alle Standorte 2007 bis 2020",
y = "Ausleihen",
x = "",
color = ""
)
ggplotly(p1)
```
```{r eval=FALSE}
Ausleihen %>%
mutate(Percent_Change = (Ausleihen_u_Verl / (lag(Ausleihen_u_Verl)) -
1))
```
```{r}
Ausleihen <- read_excel(
"T:/Statistik/ALMA_ART/Ausl_Verl.xlsx",
sheet = "Tabelle1",
col_types = c("text",
"text", "numeric", "numeric",
"numeric", "numeric"),
na = "NA"
)
```
```{r}
Ausleihen <- Ausleihen %>%
mutate(Ausl_Verl = Ausleihen + Verlängerungen) %>%
mutate(Bibliothek = factor(Bibliothek, levels = c("CVK", "CCM", "ZMK"))) %>%
mutate(Monat = as.factor(month(Monat, label = T, abb = T)))
```
```{r}
pal <- got(3, option = "Jon_Snow", direction = -1)
p1 <-
ggplot(Ausleihen, aes(x = Monat, y = Ausl_Verl, color = Bibliothek)) +
geom_point(size = 2) +
geom_line(aes(x = Monat, y = Ausl_Verl, group = Bibliothek), size = 1) +
theme(axis.text.x = element_text(angle = 90)) +
# scale_x_datetime(date_labels = "%b %Y", date_breaks = "2 month")+
theme_classic() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_color_manual(values = pal) +
ylim(0, NA) +
labs(
title = "Ausleihen (inkl. Verl.) nach Standorten 2019 und 2020",
y = "",
x = "",
color = ""
) +
facet_wrap(~Jahr)
ggplotly(p1)
```
```{r eval=FALSE}
Ausleihen %>%
group_by(Jahr) %>%
summarise(Ausl_Verl = sum(Ausl_Verl)) %>%
mutate(Percent_Change = (Ausl_Verl / (lag(Ausl_Verl)) -
1))
```
Personenzähler {data-orientation=columns}
=====================================
Column {data-width=400, data-height=400}
-----------------------------------------------------------------------
### Chart A
```{r}
Lesesaal <- read_excel(
"T:/Statistik/ALMA_ART/Lesesaal.xlsx",
sheet = "Tabelle1",
col_types = c("date",
"numeric"),
na = "NA"
)
Lesesaal_2 <- Lesesaal %>%
mutate(month = as.factor(month(Date, label = T, abb = T))) %>%
mutate(year = as.factor(year(Date)))
pal <- got(3, option = "Jon_Snow", direction = 1)
p1 <-
ggplot(Lesesaal_2, aes(x = month, y = Value, color = year)) +
geom_point(size = 2) +
geom_line(aes(x = month, y = Value, group = year), size = 1) +
theme(axis.text.x = element_text(angle = 90)) +
# scale_x_datetime(date_labels = "%b %Y", date_breaks = "2 month")+
theme_classic() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_color_manual(values = pal) +
labs(
title = "Personenzähler CVK 2018 bis 2020",
y = "Personenzähler",
x = "",
color = ""
)
ggplotly(p1)
```
```{r eval=FALSE}
Lesesaal_2 %>%
group_by(year) %>%
summarise(Value = sum(Value)) %>%
mutate(percent_change = (Value / (lag(Value)) - 1))
```